<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BGeometry</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<div class="class" name="BGeometry">
			<h1>BGeometry</h1>
			<p>继承自<a href="BShape.html">BShape</a></p>
			<p id="resume"><a href="#desc">详细</a></p>
			<h2>public</h2>
			<table id="public">
				<tr><td align="right"/><td><a href="#BGeometry()">BGeometry</a>();</td></tr>
				<tr><td align="right"/><td><a href="#BGeometry(const BString&)">BGeometry</a>(const BString& name);</td></tr>
				<tr><td align="right"/><td><a href="#BGeometry(const BGeometry&)">BGeometry</a>(const BGeometry& other);</td></tr>
				<tr><td align="right"/><td><a href="#~BGeometry()">~BGeometry</a>();</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#copy(const BShape*)">copy</a>(const BShape* other);</td></tr>
				<tr><td align="right">virtual BShape* </td><td><a href="#clone() const">clone</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#setOptimized(bool)">setOptimized</a>(bool optimized);</td></tr>
				<tr><td align="right">bool </td><td><a href="#optimized() const">optimized</a>() const;</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#setVertices(BVectorArray*)">setVertices</a>(BVectorArray* vertices);</td></tr>
				<tr><td align="right">const BVectorArray* </td><td><a href="#vertices() const">vertices</a>() const;</td></tr>
				<tr><td align="right">BVectorArray* </td><td><a href="#vertices()">vertices</a>();</td></tr>
				<tr><td align="right">void </td><td><a href="#setNormals(BVectorArray*)">setNormals</a>(BVectorArray* normals);</td></tr>
				<tr><td align="right">const BVectorArray* </td><td><a href="#normals() const">normals</a>() const;</td></tr>
				<tr><td align="right">BVectorArray* </td><td><a href="#normals()">normals</a>();</td></tr>
				<tr><td align="right">void </td><td><a href="#setColors(BColorArray*)">setColors</a>(BColorArray* colors);</td></tr>
				<tr><td align="right">const BColorArray* </td><td><a href="#colors() const">colors</a>() const;</td></tr>
				<tr><td align="right">BColorArray* </td><td><a href="#colors()">colors</a>();</td></tr>
				<tr><td align="right">bool </td><td><a href="#setTexCoords(BCoordArray*,int)">setTexCoords</a>(BCoordArray* texCoords, int unit = 0);</td></tr>
				<tr><td align="right">const BCoordArray* </td><td><a href="#texCoords(int) const">texCoords</a>(int unit = 0) const;</td></tr>
				<tr><td align="right">BCoordArray* </td><td><a href="#texCoords(int)">texCoords</a>(int unit = 0);</td></tr>
				<tr><td align="right">bool </td><td><a href="#clearTexCoords()">clearTexCoords</a>();</td></tr>
				<tr><td align="right">BElement* </td><td><a href="#addElement(Primitive,int,int)">addElement</a>(Primitive primitive, int first = -1, int count = -1);</td></tr>
				<tr><td align="right">BElement* </td><td><a href="#addElement(Primitive, BIndexArray*)">addElement</a>(Primitive primitive, BIndexArray* indices);</td></tr>
				<tr><td align="right">bool </td><td><a href="#addElement(BElement*)">addElement</a>(BElement* element);</td></tr>
				<tr><td align="right">bool </td><td><a href="#removeElement(const BElement*)">removeElement</a>(const BElement* element);</td></tr>
				<tr><td align="right">bool </td><td><a href="#replaceElement(BElement*, BElement*)">replaceElement</a>(BElement* element, BElement* newElement);</td></tr>
				<tr><td align="right">bool </td><td><a href="#clearElements()">clearElements</a>();</td></tr>
				<tr><td align="right">int </td><td><a href="#elementCount() const">elementCount</a>() const;</td></tr>
				<tr><td align="right">BElement* </td><td><a href="#element(int)">element</a>(int index);</td></tr>
				<tr><td align="right">const BElement* </td><td><a href="#element(int) const">element</a>(int index) const;</td></tr>
				<tr><td align="right">BElement* </td><td><a href="#element(const BString&)">element</a>(const BString& name);</td></tr>
				<tr><td align="right">const BElement* </td><td><a href="#element(const BString&) const">element</a>(const BString& name) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#empty() const">empty</a>() const;</td></tr>
				<tr><td align="right">void </td><td><a href="#smooth()">smooth</a>();</td></tr>
				<tr><td align="right">void </td><td><a href="#reverse()">reverse</a>();</td></tr>
				<tr><td align="right">void </td><td><a href="#simplify()">simplify</a>();</td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#flush() const">flush</a>() const;</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#clear()">clear</a>();</td></tr>
				<tr><td align="right">using </td><td><a href="#BShape::query;()">BShape::query;</a></td></tr>
				<tr><td align="right">virtual bool </td><td><a href="#query(const BString&, BValue&) const">query</a>(const BString& text, BValue& value) const;</td></tr>
				<tr><td align="right">virtual BVector </td><td><a href="#inertia(BReal) const">inertia</a>(BReal mass) const;</td></tr>
				<tr><td align="right">virtual BVector </td><td><a href="#vertex(const BVector&) const">vertex</a>(const BVector& direct) const;</td></tr>
			</table>
			<h2>protected</h2>
			<table id="protected">
				<tr><td align="right">virtual void </td><td><a href="#refresh(BBox&)">refresh</a>(BBox& box);</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#render(BRender&)">render</a>(BRender& render);</td></tr>
			</table>
			<div id="desc">
				<h2>详细介绍：</h2>
				<p>BGeometry is a kind of shape to render indexed elements or array elements. The emements are only according to one vertices data.</p>
			</div>
			<h2 id="docs">成员文档：</h2>
			<div id="BGeometry()">
				<h3>BGeometry();</h3>
				<p>Constructs Geometry.</p>
			</div>
			<div id="BGeometry(const BString&)">
				<h3>BGeometry(const BString&amp; name);</h3>
				<p>Constructs geometry with name.</p>
			</div>
			<div id="BGeometry(const BGeometry&)">
				<h3>BGeometry(const BGeometry&amp; other);</h3>
			</div>
			<div id="~BGeometry()">
				<h3>~BGeometry();</h3>
			</div>
			<div id="copy(const BShape*)">
				<h3>virtual void copy(const BShape* other);</h3>
			</div>
			<div id="clone() const">
				<h3>virtual BShape* clone() const;</h3>
			</div>
			<div id="setOptimized(bool)">
				<h3>void setOptimized(bool optimized);</h3>
				<p>Set optimized state. If optimized is true, this geometry's primitives will be organized to a space tree for fast hitting test.</p>
			</div>
			<div id="optimized() const">
				<h3>bool optimized() const;</h3>
				<p>Get optimized state.</p>
			</div>
			<div id="setVertices(BVectorArray*)">
				<h3>virtual void setVertices(BVectorArray* vertices);</h3>
				<p>Set vertices array, if success Signal_Dirty will be emited, then the node or scene contains this geometry will be signed as a dirty to refresh.</p>
			</div>
			<div id="vertices() const">
				<h3>const BVectorArray* vertices() const;</h3>
			</div>
			<div id="vertices()">
				<h3>BVectorArray* vertices();</h3>
			</div>
			<div id="setNormals(BVectorArray*)">
				<h3>void setNormals(BVectorArray* normals);</h3>
			</div>
			<div id="normals() const">
				<h3>const BVectorArray* normals() const;</h3>
			</div>
			<div id="normals()">
				<h3>BVectorArray* normals();</h3>
			</div>
			<div id="setColors(BColorArray*)">
				<h3>void setColors(BColorArray* colors);</h3>
			</div>
			<div id="colors() const">
				<h3>const BColorArray* colors() const;</h3>
			</div>
			<div id="colors()">
				<h3>BColorArray* colors();</h3>
			</div>
			<div id="setTexCoords(BCoordArray*,int)">
				<h3>bool setTexCoords(BCoordArray* texCoords, int unit = 0);</h3>
			</div>
			<div id="texCoords(int) const">
				<h3>const BCoordArray* texCoords(int unit = 0) const;</h3>
			</div>
			<div id="texCoords(int)">
				<h3>BCoordArray* texCoords(int unit = 0);</h3>
			</div>
			<div id="clearTexCoords()">
				<h3>bool clearTexCoords();</h3>
			</div>
			<div id="addElement(Primitive,int,int)">
				<h3>BElement* addElement(Primitive primitive, int first = -1, int count = -1);</h3>
				<p>This convenient method to add an element. </p>
			</div>
			<div id="addElement(Primitive, BIndexArray*)">
				<h3>BElement* addElement(Primitive primitive, BIndexArray* indices);</h3>
			</div>
			<div id="addElement(BElement*)">
				<h3>bool addElement(BElement* element);</h3>
				<p>Add an element to this geometry. If success this geometry will emit Signal_Dirty, then the node or scene contains this geometry will be notified to refresh.</p>
			</div>
			<div id="removeElement(const BElement*)">
				<h3>bool removeElement(const BElement* element);</h3>
				<p>Remove the emement from this geometry.</p>
			</div>
			<div id="replaceElement(BElement*, BElement*)">
				<h3>bool replaceElement(BElement* element, BElement* newElement);</h3>
			</div>
			<div id="clearElements()">
				<h3>bool clearElements();</h3>
				<p>Clear all elements.</p>
			</div>
			<div id="elementCount() const">
				<h3>int elementCount() const;</h3>
			</div>
			<div id="element(int)">
				<h3>BElement* element(int index);</h3>
			</div>
			<div id="element(int) const">
				<h3>const BElement* element(int index) const;</h3>
			</div>
			<div id="element(const BString&)">
				<h3>BElement* element(const BString&amp; name);</h3>
			</div>
			<div id="element(const BString&) const">
				<h3>const BElement* element(const BString&amp; name) const;</h3>
			</div>
			<div id="empty() const">
				<h3>bool empty() const;</h3>
				<p>If this geometry has no arrays or elements return true.</p>
			</div>
			<div id="smooth()">
				<h3>void smooth();</h3>
				<p>Rebuild normals according current elements.</p>
			</div>
			<div id="reverse()">
				<h3>void reverse();</h3>
			</div>
			<div id="simplify()">
				<h3>void simplify();</h3>
			</div>
			<div id="flush() const">
				<h3>virtual bool flush() const;</h3>
			</div>
			<div id="clear()">
				<h3>virtual void clear();</h3>
				<p>Clear all arrays and all elements, Signal_Dirty will be emited.</p>
			</div>
			<div id="BShape::query;()">
				<h3>using BShape::query;</h3>
			</div>
			<div id="query(const BString&, BValue&) const">
				<h3>virtual bool query(const BString&amp; text, BValue&amp; value) const;</h3>
			</div>
			<div id="inertia(BReal) const">
				<h3>virtual BVector inertia(BReal mass) const;</h3>
			</div>
			<div id="vertex(const BVector&) const">
				<h3>virtual BVector vertex(const BVector&amp; direct) const;</h3>
			</div>
			<div id="refresh(BBox&)">
				<h3>virtual void refresh(BBox&amp; box);</h3>
			</div>
			<div id="render(BRender&)">
				<h3>virtual void render(BRender&amp; render);</h3>
				<p/>
			</div>
		</div>
	</body>
</html>